JSON (JavaScript Object Notation) হল একটি হালকা ডেটা বিনিময় ফরম্যাট যা মানব-পঠনযোগ্য এবং মেশিনের জন্য সহজে পার্স করা যায়। জাভা (Java) হল একটি জনপ্রিয় প্রোগ্রামিং ভাষা, যা ওর্য়াল্ডের বিভিন্ন ধরনের অ্যাপ্লিকেশনে ব্যবহৃত হয়। JSON এবং Java এর মধ্যে ইন্টিগ্রেশন হল একটি সাধারণ প্রক্রিয়া, যেখানে JSON ডেটা Java অবজেক্টে কনভার্ট করা হয় এবং Java অবজেক্ট থেকে JSON তৈরি করা হয়।
Java এবং JSON এর মধ্যে ডেটা আদান-প্রদান
JSON এবং Java এর মধ্যে ডেটা আদান-প্রদান করার জন্য Java এ কয়েকটি লাইব্রেরি রয়েছে, যেমন:
- Jackson: JSON ডেটা পার্সিং এবং সিরিয়ালাইজেশনের জন্য একটি জনপ্রিয় লাইব্রেরি।
- Gson: Google দ্বারা তৈরি একটি লাইব্রেরি যা JSON ডেটা পার্স এবং সিরিয়ালাইজেশনের জন্য ব্যবহৃত হয়।
- JSON.simple: একটি সহজ এবং হালকা লাইব্রেরি যা JSON প্রক্রিয়াজাতকরণের জন্য ব্যবহার করা হয়।
এখানে আমরা Jackson এবং Gson লাইব্রেরির উদাহরণ দেখব।
Jackson লাইব্রেরি দিয়ে JSON এবং Java Integration
Jackson Java এর একটি শক্তিশালী লাইব্রেরি যা JSON ডেটাকে Java অবজেক্টে এবং Java অবজেক্টকে JSON ডেটায় কনভার্ট করতে ব্যবহৃত হয়। Jackson লাইব্রেরি ব্যবহার করতে হলে প্রথমে এর Maven ডিপেনডেন্সি যুক্ত করতে হয়।
Maven Dependency for Jackson
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.1</version>
</dependency>
Jackson দিয়ে JSON থেকে Java অবজেক্টে কনভার্ট করা
import com.fasterxml.jackson.databind.ObjectMapper;
public class JSONToJavaExample {
public static void main(String[] args) throws Exception {
String json = "{\"name\":\"John\", \"age\":30}";
// Jackson ObjectMapper এর মাধ্যমে JSON থেকে Java অবজেক্টে কনভার্ট করা
ObjectMapper objectMapper = new ObjectMapper();
Person person = objectMapper.readValue(json, Person.class);
System.out.println(person.getName()); // John
System.out.println(person.getAge()); // 30
}
}
class Person {
private String name;
private int age;
// Getters and Setters
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
এখানে, ObjectMapper ব্যবহার করে JSON স্ট্রিংকে Person ক্লাসের অবজেক্টে কনভার্ট করা হয়েছে।
Jackson দিয়ে Java অবজেক্ট থেকে JSON এ কনভার্ট করা
import com.fasterxml.jackson.databind.ObjectMapper;
public class JavaToJSONExample {
public static void main(String[] args) throws Exception {
Person person = new Person();
person.setName("John");
person.setAge(30);
// Jackson ObjectMapper এর মাধ্যমে Java অবজেক্ট থেকে JSON এ কনভার্ট করা
ObjectMapper objectMapper = new ObjectMapper();
String json = objectMapper.writeValueAsString(person);
System.out.println(json); // {"name":"John","age":30}
}
}
এখানে, ObjectMapper ব্যবহার করে Person অবজেক্টকে JSON ফরম্যাটে কনভার্ট করা হয়েছে।
Gson লাইব্রেরি দিয়ে JSON এবং Java Integration
Gson একটি সহজ এবং জনপ্রিয় লাইব্রেরি যা JSON ডেটাকে Java অবজেক্টে এবং Java অবজেক্টকে JSON এ কনভার্ট করতে ব্যবহৃত হয়। Gson লাইব্রেরি ব্যবহার করতে হলে প্রথমে এটি Maven ডিপেনডেন্সি হিসেবে যুক্ত করতে হয়।
Maven Dependency for Gson
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.8</version>
</dependency>
Gson দিয়ে JSON থেকে Java অবজেক্টে কনভার্ট করা
import com.google.gson.Gson;
public class JSONToJavaGsonExample {
public static void main(String[] args) {
String json = "{\"name\":\"John\", \"age\":30}";
// Gson এর মাধ্যমে JSON থেকে Java অবজেক্টে কনভার্ট করা
Gson gson = new Gson();
Person person = gson.fromJson(json, Person.class);
System.out.println(person.getName()); // John
System.out.println(person.getAge()); // 30
}
}
class Person {
private String name;
private int age;
// Getters and Setters
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
এখানে, Gson এর fromJson মেথড ব্যবহার করে JSON ডেটাকে Person অবজেক্টে কনভার্ট করা হয়েছে।
Gson দিয়ে Java অবজেক্ট থেকে JSON এ কনভার্ট করা
import com.google.gson.Gson;
public class JavaToJSONGsonExample {
public static void main(String[] args) {
Person person = new Person();
person.setName("John");
person.setAge(30);
// Gson এর মাধ্যমে Java অবজেক্ট থেকে JSON এ কনভার্ট করা
Gson gson = new Gson();
String json = gson.toJson(person);
System.out.println(json); // {"name":"John","age":30}
}
}
এখানে, Gson এর toJson মেথড ব্যবহার করে Person অবজেক্টকে JSON ফরম্যাটে কনভার্ট করা হয়েছে।
JSON এবং Java Integration এর সুবিধা
- সহজ এবং দ্রুত পার্সিং: JSON ডেটা পার্সিং করা খুব সহজ এবং দ্রুত, যা Java অ্যাপ্লিকেশনগুলোতে দ্রুত ডেটা প্রসেসিং নিশ্চিত করে।
- হালকা ও কমপ্যাক্ট ফরম্যাট: JSON XML এর তুলনায় অনেক হালকা এবং কমপ্যাক্ট, তাই এটি সিস্টেমের পারফরম্যান্স উন্নত করে।
- জাভার সাথে সহজ ইন্টিগ্রেশন: JSON লাইব্রেরি যেমন Jackson এবং Gson Java-এর সাথে সহজে ইন্টিগ্রেট করা যায় এবং ডেটা কনভার্সন দ্রুত করা যায়।
- বৃহৎ পরিমাণ ডেটা সমর্থন: JSON অনেক বড় পরিমাণ ডেটা কার্যকরভাবে পরিচালনা করতে পারে, যা ওয়েব সার্ভিস এবং REST API ব্যবহারে খুব কার্যকরী।
JSON এবং Java এর মধ্যে ইন্টিগ্রেশন একটি সাধারণ এবং গুরুত্বপূর্ণ পদ্ধতি, যা ডেটা আদান-প্রদান সহজ করে। এটি ওয়েব অ্যাপ্লিকেশন এবং API ডেভেলপমেন্টে একটি অপরিহার্য অংশ হিসেবে ব্যবহৃত হয়।
JSON (JavaScript Object Notation) হল একটি জনপ্রিয় ডেটা বিনিময় ফরম্যাট যা খুবই হালকা ও সহজ। এটি সাধারণত ওয়েব অ্যাপ্লিকেশন ও সার্ভার-মডেল অ্যাপ্লিকেশনগুলিতে ডেটা ট্রান্সফারের জন্য ব্যবহৃত হয়। Java তে JSON ডেটা পার্স করা সাধারণত JSON লাইব্রেরি ব্যবহার করে করা হয়। কিছু জনপ্রিয় লাইব্রেরি হলো Jackson, Gson, এবং org.json। এই লাইব্রেরি গুলোর মাধ্যমে আপনি JSON ডেটা অ্যাপ্লিকেশনে ইনপুট হিসেবে গ্রহণ করে Java অবজেক্টে পরিণত করতে পারেন, যা পরে ব্যবহার করা সহজ।
JSON Data পার্স করার প্রক্রিয়া
১. Jackson লাইব্রেরি ব্যবহার করে JSON পার্স করা
Jackson একটি জনপ্রিয় JSON পার্সিং লাইব্রেরি যা JSON ডেটা পার্স করার জন্য খুবই দ্রুত এবং সহজ। Jackson-এর প্রধান উপাদান দুটি:
- ObjectMapper: এটি JSON ডেটা Java অবজেক্টে রূপান্তর (deserialize) এবং Java অবজেক্ট থেকে JSON এ রূপান্তর (serialize) করতে ব্যবহৃত হয়।
Jackson লাইব্রেরি ইনস্টল করা
প্রথমে Maven বা Gradle ব্যবহার করে Jackson লাইব্রেরি ইনস্টল করতে হবে।
Maven Dependency:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.0</version>
</dependency>
উদাহরণ: JSON ডেটা পার্স করা Jackson দিয়ে
import com.fasterxml.jackson.databind.ObjectMapper;
class Person {
private String name;
private int age;
// Getter and Setter methods
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class JacksonExample {
public static void main(String[] args) {
try {
// JSON String
String json = "{\"name\":\"John\", \"age\":30}";
// Create an ObjectMapper instance
ObjectMapper objectMapper = new ObjectMapper();
// Parse JSON into Java object (Person)
Person person = objectMapper.readValue(json, Person.class);
// Print the object data
System.out.println("Name: " + person.getName());
System.out.println("Age: " + person.getAge());
} catch (Exception e) {
e.printStackTrace();
}
}
}
এখানে:
ObjectMapper.readValue()মেথডটি JSON ডেটাকে Java অবজেক্টে রূপান্তরিত করে।Personক্লাসে থাকা getter এবং setter মেথডের মাধ্যমে JSON ডেটার মান অ্যাক্সেস করা হয়।
২. Gson লাইব্রেরি ব্যবহার করে JSON পার্স করা
Gson একটি Google কর্তৃক ডেভেলপকৃত JSON লাইব্রেরি যা JSON ডেটাকে Java অবজেক্টে রূপান্তর এবং Java অবজেক্টকে JSON এ রূপান্তর করতে ব্যবহৃত হয়।
Gson লাইব্রেরি ইনস্টল করা
Maven Dependency:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.8</version>
</dependency>
উদাহরণ: JSON ডেটা পার্স করা Gson দিয়ে
import com.google.gson.Gson;
class Person {
private String name;
private int age;
// Getter and Setter methods
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class GsonExample {
public static void main(String[] args) {
// JSON String
String json = "{\"name\":\"John\", \"age\":30}";
// Create a Gson object
Gson gson = new Gson();
// Convert JSON string to Java object
Person person = gson.fromJson(json, Person.class);
// Print the object data
System.out.println("Name: " + person.getName());
System.out.println("Age: " + person.getAge());
}
}
এখানে:
gson.fromJson()মেথড JSON ডেটাকে Java অবজেক্টে রূপান্তরিত করে।Personক্লাসে থাকা getter এবং setter মেথডের মাধ্যমে JSON ডেটার মান অ্যাক্সেস করা হয়।
৩. org.json লাইব্রেরি ব্যবহার করে JSON পার্স করা
org.json লাইব্রেরি একটি ছোট এবং জনপ্রিয় লাইব্রেরি যা JSON পার্সিং এবং ম্যানিপুলেশন করতে ব্যবহৃত হয়।
org.json লাইব্রেরি ইনস্টল করা
Maven Dependency:
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20210307</version>
</dependency>
উদাহরণ: JSON ডেটা পার্স করা org.json দিয়ে
import org.json.JSONObject;
public class JsonOrgExample {
public static void main(String[] args) {
// JSON String
String json = "{\"name\":\"John\", \"age\":30}";
// Create a JSONObject from the string
JSONObject jsonObject = new JSONObject(json);
// Access the values from the JSON object
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
// Print the values
System.out.println("Name: " + name);
System.out.println("Age: " + age);
}
}
এখানে:
JSONObjectক্লাস JSON ডেটা প্যার্স করতে ব্যবহৃত হয়।getString()এবংgetInt()মেথডের মাধ্যমে JSON ডেটার মান অ্যাক্সেস করা হয়।
সারাংশ
Java তে JSON ডেটা পার্স করার জন্য আপনি Jackson, Gson, অথবা org.json লাইব্রেরি ব্যবহার করতে পারেন। প্রত্যেকটি লাইব্রেরি JSON ডেটাকে Java অবজেক্টে রূপান্তর করতে সহায়তা করে এবং JSON ডেটাকে Java অবজেক্টে কাজ করার জন্য একটি উপযুক্ত এবং দ্রুত উপায় প্রদান করে। এগুলোর মধ্যে Jackson এবং Gson সবচেয়ে বেশি ব্যবহৃত এবং আধুনিক লাইব্রেরি, তবে org.json সহজ এবং হালকা লাইব্রেরি হিসেবে কাজ করতে পারে।
JSON (JavaScript Object Notation) একটি জনপ্রিয় ডেটা ফরম্যাট, যা Java সহ বিভিন্ন প্রোগ্রামিং ভাষায় ব্যবহৃত হয়। Java এ JSON ডেটা প্রসেস করতে বিভিন্ন লাইব্রেরি উপলব্ধ রয়েছে। তিনটি জনপ্রিয় লাইব্রেরি হল Jackson, Gson, এবং org.json। এগুলি JSON ডেটা পার্সিং এবং তৈরি করার জন্য খুবই কার্যকরী। এখানে আমরা তিনটি লাইব্রেরি ব্যবহার করার উপায় আলোচনা করব।
১. Jackson
Jackson একটি শক্তিশালী এবং বহুল ব্যবহৃত লাইব্রেরি, যা JSON ডেটা প্রসেস করতে ব্যবহৃত হয়। Jackson একটি streaming API এবং data-binding API প্রদান করে, যা JSON ডেটাকে Java অবজেক্টে এবং Java অবজেক্টকে JSON ফরম্যাটে কনভার্ট করতে সাহায্য করে।
Jackson ব্যবহার করার পদক্ষেপ
স্টেপ ১: Jackson লাইব্রেরি যোগ করা (Maven বা Gradle এর মাধ্যমে)
Maven এর জন্য pom.xml ফাইলে Jackson এর ডিপেন্ডেন্সি যোগ করুন:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.3</version>
</dependency>
স্টেপ ২: Java অবজেক্টে JSON কনভার্ট করা (Serialization)
import com.fasterxml.jackson.databind.ObjectMapper;
class Person {
private String name;
private int age;
// Getters and Setters
}
public class JacksonExample {
public static void main(String[] args) throws Exception {
Person person = new Person();
person.setName("John");
person.setAge(25);
ObjectMapper objectMapper = new ObjectMapper();
// Java object to JSON
String jsonString = objectMapper.writeValueAsString(person);
System.out.println(jsonString);
}
}
স্টেপ ৩: JSON থেকে Java অবজেক্টে কনভার্ট করা (Deserialization)
String jsonString = "{\"name\":\"John\", \"age\":25}";
ObjectMapper objectMapper = new ObjectMapper();
// JSON to Java object
Person person = objectMapper.readValue(jsonString, Person.class);
System.out.println(person.getName() + ", " + person.getAge());
২. Gson
Gson হল Google এর একটি লাইব্রেরি যা JSON ডেটা প্রসেস করার জন্য ব্যবহৃত হয়। এটি সহজে JSON ডেটা থেকে Java অবজেক্টে এবং Java অবজেক্ট থেকে JSON ফরম্যাটে রূপান্তর করতে সাহায্য করে।
Gson ব্যবহার করার পদক্ষেপ
স্টেপ ১: Gson লাইব্রেরি যোগ করা (Maven বা Gradle এর মাধ্যমে)
Maven এর জন্য pom.xml ফাইলে Gson এর ডিপেন্ডেন্সি যোগ করুন:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.8</version>
</dependency>
স্টেপ ২: Java অবজেক্টে JSON কনভার্ট করা (Serialization)
import com.google.gson.Gson;
class Person {
private String name;
private int age;
// Getters and Setters
}
public class GsonExample {
public static void main(String[] args) {
Person person = new Person();
person.setName("Jane");
person.setAge(30);
Gson gson = new Gson();
// Java object to JSON
String jsonString = gson.toJson(person);
System.out.println(jsonString);
}
}
স্টেপ ৩: JSON থেকে Java অবজেক্টে কনভার্ট করা (Deserialization)
String jsonString = "{\"name\":\"Jane\", \"age\":30}";
Gson gson = new Gson();
// JSON to Java object
Person person = gson.fromJson(jsonString, Person.class);
System.out.println(person.getName() + ", " + person.getAge());
৩. org.json
org.json একটি অন্য জনপ্রিয় লাইব্রেরি যা JSON ডেটার পার্সিং, বিল্ডিং এবং কনভার্টিং জন্য ব্যবহৃত হয়। এটি একেবারে সরল এবং স্বচ্ছ উপায়ে JSON ডেটা হ্যান্ডেল করতে পারে।
org.json ব্যবহার করার পদক্ষেপ
স্টেপ ১: org.json লাইব্রেরি যোগ করা (Maven বা Gradle এর মাধ্যমে)
Maven এর জন্য pom.xml ফাইলে org.json এর ডিপেন্ডেন্সি যোগ করুন:
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20210307</version>
</dependency>
স্টেপ ২: JSON তৈরি করা (Serialization)
import org.json.JSONObject;
class Person {
private String name;
private int age;
// Getters and Setters
}
public class JsonExample {
public static void main(String[] args) {
Person person = new Person();
person.setName("Alice");
person.setAge(22);
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", person.getName());
jsonObject.put("age", person.getAge());
// Java object to JSON
System.out.println(jsonObject.toString());
}
}
স্টেপ ৩: JSON থেকে Java অবজেক্টে কনভার্ট করা (Deserialization)
String jsonString = "{\"name\":\"Alice\", \"age\":22}";
JSONObject jsonObject = new JSONObject(jsonString);
// JSON to Java object
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
System.out.println(name + ", " + age);
সারাংশ
Jackson, Gson, এবং org.json তিনটি শক্তিশালী এবং জনপ্রিয় লাইব্রেরি যা Java এ JSON ডেটা হ্যান্ডলিংয়ের জন্য ব্যবহৃত হয়। Jackson এবং Gson উভয়েই Java অবজেক্ট এবং JSON ফরম্যাটের মধ্যে রূপান্তর করতে সাহায্য করে, তবে Jackson বেশি ফিচার-প্যাকড এবং দ্রুত, যেখানে Gson অনেক সহজ ও পরিষ্কার। অন্যদিকে org.json একটি হালকা এবং সরল লাইব্রেরি যা JSON ডেটা হ্যান্ডল করতে কার্যকরী। আপনার প্রজেক্টের প্রয়োজন অনুসারে এই লাইব্রেরিগুলির যেকোনো একটি নির্বাচন করা যেতে পারে।
JSON (JavaScript Object Notation) একটি সাধারণ, লাইটওয়েট ডেটা ইন্টারচেঞ্জ ফরম্যাট যা মানুষের জন্য পড়তে সহজ এবং মেশিন দ্বারা দ্রুত পার্স করা যায়। Java প্রোগ্রামিং ভাষায় JSON ডেটা কার্যকরভাবে প্রক্রিয়া করার জন্য সাধারণত Deserialization বা JSON থেকে Java Object এ রূপান্তর প্রক্রিয়া ব্যবহৃত হয়। এই প্রক্রিয়ায় JSON স্ট্রিংকে Java Object-এ রূপান্তর করা হয়, যা আপনার Java কোডে ডেটার সাথে কাজ করতে সহায়ক হয়।
JSON থেকে Java Object এ রূপান্তরের প্রক্রিয়া
Deserialization হচ্ছে JSON ফরম্যাটের ডেটা কনভার্ট করা Java Object-এ। এই প্রক্রিয়ায় Java Object তৈরি করা হয় যেটি JSON ডেটার প্রতিটি key-value pair থেকে মান গ্রহণ করে।
Java তে JSON থেকে Object-এ রূপান্তরের জন্য দুটি জনপ্রিয় লাইব্রেরি ব্যবহৃত হয়:
- Jackson
- Gson
এখন আমরা এই দুটি লাইব্রেরি ব্যবহার করে JSON থেকে Java Object-এ রূপান্তরের প্রক্রিয়া দেখব।
১. Jackson ব্যবহার করে JSON থেকে Java Object রূপান্তর
Jackson একটি শক্তিশালী লাইব্রেরি যা JSON থেকে Java Object-এ রূপান্তর এবং Java Object থেকে JSON এ রূপান্তর করার জন্য ব্যবহৃত হয়। এর মাধ্যমে JSON ডেটাকে Java Object-এ Deserialization করা যায় খুব সহজে।
উদাহরণ:
ধরা যাক আমাদের একটি Person ক্লাস আছে, যা JSON ডেটার সাথে ম্যাপ হবে।
public class Person {
private String name;
private int age;
// Getter and Setter methods
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
এখন, JSON স্ট্রিংকে এই Person ক্লাসের একটি অবজেক্টে রূপান্তর করা যাক।
import com.fasterxml.jackson.databind.ObjectMapper;
public class JacksonExample {
public static void main(String[] args) throws Exception {
// JSON String
String jsonString = "{\"name\": \"John Doe\", \"age\": 30}";
// Jackson ObjectMapper ব্যবহার করে JSON থেকে Java Object এ রূপান্তর
ObjectMapper objectMapper = new ObjectMapper();
Person person = objectMapper.readValue(jsonString, Person.class);
// Java Object থেকে ডেটা প্রাপ্তি
System.out.println("Name: " + person.getName());
System.out.println("Age: " + person.getAge());
}
}
এখানে:
ObjectMapperJackson এর একটি গুরুত্বপূর্ণ ক্লাস যা JSON কে Java Object-এ রূপান্তর করতে ব্যবহৃত হয়।readValueমেথড JSON স্ট্রিংকেPersonক্লাসের অবজেক্টে রূপান্তর করেছে।
আউটপুট:
Name: John Doe
Age: 30
২. Gson ব্যবহার করে JSON থেকে Java Object রূপান্তর
Gson হল একটি লাইটওয়েট লাইব্রেরি যা JSON থেকে Java Object-এ রূপান্তর করতে ব্যবহৃত হয়। Gson সাধারণত ছোট এবং দ্রুত কাজ করার জন্য পরিচিত।
উদাহরণ:
ধরা যাক আমাদের একই Person ক্লাস আছে, এবং Gson লাইব্রেরি ব্যবহার করে JSON ডেটাকে Java Object-এ রূপান্তর করতে চাই।
import com.google.gson.Gson;
public class GsonExample {
public static void main(String[] args) {
// JSON String
String jsonString = "{\"name\": \"John Doe\", \"age\": 30}";
// Gson ব্যবহার করে JSON থেকে Java Object-এ রূপান্তর
Gson gson = new Gson();
Person person = gson.fromJson(jsonString, Person.class);
// Java Object থেকে ডেটা প্রাপ্তি
System.out.println("Name: " + person.getName());
System.out.println("Age: " + person.getAge());
}
}
এখানে:
fromJsonমেথড JSON স্ট্রিংকেPersonক্লাসের অবজেক্টে রূপান্তর করেছে।
আউটপুট:
Name: John Doe
Age: 30
JSON থেকে Java Object রূপান্তরের সময় কী কী লক্ষ্য রাখতে হবে?
- ডেটা টাইপ মেলানো: JSON এর key-value pair এর মান এবং Java Object এর ফিল্ড টাইপ সঠিকভাবে মেলানো দরকার। যেমন, যদি JSON এ
"age": 30থাকে, তবে Java Object-এageফিল্ডটিintটাইপ হতে হবে। - Getter-Setter মেথড: JSON ডেটাকে Java Object-এ রূপান্তর করতে হলে Java ক্লাসে Getter এবং Setter মেথড থাকা প্রয়োজন, যাতে JSON থেকে মান গ্রহণ এবং সেট করা যায়।
- Nested Objects: যদি JSON এ nested objects থাকে, তাহলে Java Object-এ সেই nested ক্লাসের জন্য আলাদা ফিল্ড থাকা প্রয়োজন এবং সেগুলোর জন্য অতিরিক্ত
@JsonPropertyবাGsonমডিফায়ার ব্যবহার করা যেতে পারে।
৩. Nested JSON Objects থেকে Java Object রূপান্তর
ধরা যাক, আমাদের JSON ডেটাতে একটি nested অবজেক্ট রয়েছে:
{
"name": "John Doe",
"address": {
"street": "123 Main St",
"city": "New York"
}
}
এখানে, "address" একটি nested JSON অবজেক্ট। এর Java ক্লাসে মাপিং করতে হবে।
Java ক্লাস:
public class Address {
private String street;
private String city;
// Getter and Setter methods
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
}
public class Person {
private String name;
private Address address;
// Getter and Setter methods
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
}
JSON থেকে Java Object রূপান্তর:
import com.fasterxml.jackson.databind.ObjectMapper;
public class NestedJacksonExample {
public static void main(String[] args) throws Exception {
// JSON String
String jsonString = "{\"name\": \"John Doe\", \"address\": {\"street\": \"123 Main St\", \"city\": \"New York\"}}";
// Jackson ObjectMapper ব্যবহার করে JSON থেকে Java Object এ রূপান্তর
ObjectMapper objectMapper = new ObjectMapper();
Person person = objectMapper.readValue(jsonString, Person.class);
// Java Object থেকে nested Object ডেটা প্রাপ্তি
System.out.println("Name: " + person.getName());
System.out.println("Street: " + person.getAddress().getStreet());
System.out.println("City: " + person.getAddress().getCity());
}
}
আউটপুট:
Name: John Doe
Street: 123 Main St
City: New York
সারাংশ
JSON থেকে Java Object-এ রূপান্তর (Deserialization) হল একটি গুরুত্বপূর্ণ প্রক্রিয়া, যা JSON ডেটাকে Java Object-এ রূপান্তর করার মাধ্যমে ডেটা প্রক্রিয়াকরণ সহজ করে। Jackson এবং Gson দুটি জনপ্রিয় লাইব্রেরি, যা JSON থেকে Java Object রূপান্তর করতে ব্যবহৃত হয়। এই লাইব্রেরিগুলি অত্যন্ত কার্যকরী এবং সহজভাবে JSON ডেটার সাথে কাজ করার সুযোগ দেয়।
Java থেকে JSON তৈরি করার প্রক্রিয়াটি Serialization নামে পরিচিত। Serialization হল একটি প্রক্রিয়া যেখানে Java Object কে JSON ফরম্যাটে রূপান্তর করা হয়। এটি সাধারণত Java অ্যাপ্লিকেশন এবং ওয়েব সার্ভিসে ডেটা ট্রান্সফার করার জন্য ব্যবহৃত হয়। Java Object থেকে JSON ফরম্যাটে ডেটা রূপান্তর করার জন্য বিভিন্ন লাইব্রেরি রয়েছে, এর মধ্যে Jackson এবং Gson জনপ্রিয়।
JSON তৈরি (Serialization) করার জন্য Jackson লাইব্রেরি ব্যবহার করা
Jackson একটি শক্তিশালী এবং জনপ্রিয় JSON প্রোসেসিং লাইব্রেরি যা JSON ডেটা পার্সিং এবং Java Object থেকে JSON তৈরি করতে ব্যবহৃত হয়। Jackson ব্যবহার করে Java Object কে JSON ফরম্যাটে কনভার্ট (Serialize) করার প্রক্রিয়া খুবই সহজ।
১. Jackson লাইব্রেরি যোগ করা
প্রথমে, আপনাকে Jackson লাইব্রেরি আপনার প্রজেক্টে যোগ করতে হবে। যদি আপনি Maven ব্যবহার করেন, তবে pom.xml ফাইলে নিম্নলিখিত ডিপেন্ডেন্সি যুক্ত করুন:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.0</version>
</dependency>
২. Java ক্লাস তৈরি করা
আপনার Java Object কে JSON এ কনভার্ট করার জন্য প্রথমে একটি Java ক্লাস তৈরি করতে হবে। এই ক্লাসে কিছু প্রোপার্টি (ফিল্ড) থাকবে, যেমন নাম, বয়স ইত্যাদি।
public class Person {
private String name;
private int age;
// Constructor
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// Getters and Setters
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
এখানে, Person নামের একটি Java ক্লাস তৈরি করা হয়েছে, যেখানে দুটি প্রোপার্টি রয়েছে: name এবং age।
৩. Java Object থেকে JSON তৈরি করা (Serialization)
Jackson এর ObjectMapper ক্লাস ব্যবহার করে Java Object কে JSON ফরম্যাটে কনভার্ট করা যায়।
import com.fasterxml.jackson.databind.ObjectMapper;
public class Main {
public static void main(String[] args) {
try {
// Java Object তৈরি
Person person = new Person("Alice", 28);
// Jackson ObjectMapper তৈরি
ObjectMapper objectMapper = new ObjectMapper();
// Java Object কে JSON এ রূপান্তর
String jsonString = objectMapper.writeValueAsString(person);
// JSON আউটপুট
System.out.println(jsonString);
} catch (Exception e) {
e.printStackTrace();
}
}
}
এখানে:
ObjectMapperক্লাসটি Jackson লাইব্রেরির একটি গুরুত্বপূর্ণ অংশ যা Java Object কে JSON এ রূপান্তর (Serialization) এবং JSON কে Java Object এ রূপান্তর (Deserialization) করতে ব্যবহৃত হয়।writeValueAsString()মেথডটি Java Object কে JSON ফরম্যাটে কনভার্ট করে।
৪. আউটপুট
উপরোক্ত কোডটি চালানোর পর JSON আউটপুট হবে:
{"name":"Alice","age":28}
এখানে, Person অবজেক্টটির name এবং age প্রোপার্টি JSON ফরম্যাটে কনভার্ট হয়ে বের হয়েছে।
JSON তৈরি (Serialization) করার জন্য Gson লাইব্রেরি ব্যবহার করা
আরেকটি জনপ্রিয় লাইব্রেরি হল Gson, যা Google কর্তৃক তৈরি এবং JSON পার্সিং এবং Serialization/Deserialization এর জন্য ব্যবহৃত হয়।
১. Gson লাইব্রেরি যোগ করা
প্রথমে, Gson লাইব্রেরি আপনার প্রজেক্টে যোগ করতে হবে। Maven ব্যবহার করলে, pom.xml ফাইলে নিম্নলিখিত ডিপেন্ডেন্সি যোগ করুন:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.8</version>
</dependency>
২. Gson ব্যবহার করে Java Object থেকে JSON তৈরি করা
import com.google.gson.Gson;
public class Main {
public static void main(String[] args) {
// Java Object তৈরি
Person person = new Person("Alice", 28);
// Gson ইনস্ট্যান্স তৈরি
Gson gson = new Gson();
// Java Object কে JSON এ রূপান্তর
String jsonString = gson.toJson(person);
// JSON আউটপুট
System.out.println(jsonString);
}
}
এখানে:
toJson()মেথডটি Gson লাইব্রেরির একটি মেথড যা Java Object কে JSON এ রূপান্তর করে।
৩. আউটপুট
উপরোক্ত কোডটি চালানোর পর JSON আউটপুট হবে:
{"name":"Alice","age":28}
সারাংশ
Java Object থেকে JSON তৈরি (Serialization) করার জন্য Jackson এবং Gson দুটি জনপ্রিয় এবং কার্যকরী লাইব্রেরি। এই লাইব্রেরিগুলির সাহায্যে আপনি Java Object কে সহজে JSON ফরম্যাটে রূপান্তর করতে পারেন, যা ওয়েব সার্ভিস বা ডেটা এক্সচেঞ্জের জন্য প্রয়োজনীয়। Jackson এবং Gson উভয়ই JSON ডেটা প্রোসেসিংয়ের জন্য শক্তিশালী এবং সহজে ব্যবহারযোগ্য টুল।
Read more